# -*- coding: utf-8 -*-
"""
@Time    : 2024/6/27 18:44 
@Author  : ZhangShenao 
@File    : default_param.py 
@Desc    : 函数的默认参数
参数默认值也就是给参数设置默认值,之后函数调用时便可以不传入这个参数,Python会自动以默认值来填充参数
如果一个有默认值的参数依然被传入了值,那么默认值将会被覆盖
"""


def over_speed_info(cur_speed, min_speed=80, max_speed=120) -> str:
    """
    获取超速信息
    :param cur_speed: 当前速度
    :param min_speed: 最低限速
    :param max_speed: 最高限速
    :return: 超速信息
    """
    if cur_speed > max_speed:
        return f'超过最高限速{(cur_speed - max_speed) / max_speed * 100}%'
    if cur_speed < min_speed:
        return f'超过最低限速{(min_speed - cur_speed) / min_speed * 100}%'
    return '正常行驶'


if __name__ == '__main__':
    # 调用函数,省略默认参数,此时默认参数会以默认值来填充
    print(over_speed_info(100))

    # 调用函数,传入部分默认参数,此时传入的参数值会覆盖默认值
    # 这种以 参数名=值 的形式来向指定的参数传入值,称为关键字参数
    # 关键字参数要放在位置参数的后面
    print(over_speed_info(120, max_speed=100, min_speed=80))

    print(over_speed_info(max_speed=100, min_speed=80, cur_speed=60))
